package leetcode.code046.Permutations;

import java.util.List;

import leetcode.IDebug;
import leetcode.helper.HelpDebug;

public abstract class Permutations implements IDebug {

	abstract public List<List<Integer>> permute(int[] nums);

	@Override
	public void debug1() {
		int[] nums = { 1, 2, 3 };
		String out = "[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]";
		List<List<Integer>> result = this.permute(nums);
		HelpDebug.printInputs(out, new Object[] { nums });
		HelpDebug.printObject(result);
	}

	@Override
	public void debug2() {
		int[] nums = { 1, 2 };
		String out = "[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]";
		List<List<Integer>> result = this.permute(nums);
		HelpDebug.printInputs(out, new Object[] { nums });
		HelpDebug.printObject(result);
	}

	@Override
	public void debug3() {
		int[] nums = { 1, 2, 3, 4 };
		String out = "[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]";
		List<List<Integer>> result = this.permute(nums);
		HelpDebug.printInputs(out, new Object[] { nums });
		HelpDebug.printObject(result);
	}

	@Override
	public void debug4() {
		// TODO Auto-generated method stub

	}

}
